package com.mazaiting.classpath;

import cn.hutool.core.io.FileUtil;

import java.io.File;

/**
 * 类解析工厂
 *
 * @author mazaiting
 * @since 2021/8/10
 */
public class EntryFactory {

    /**
     * 创建一个类解析对象
     * @param path 路径
     * @return 类解析工具
     */
    public static Entry newEntry(String path) {
        // 判断路径是否存在分隔符
        if (path.contains(File.pathSeparator)) {
            return new CompositeEntry(path);
        }
        // 判断路径末尾是否包含*号
        if (path.endsWith("*")) {
            return new WildcardEntry(path);
        }
        // 判断是否为压缩包
        if (path.endsWith(".jar") || path.endsWith(".JAR") || path.endsWith(".zip") || path.endsWith(".ZIP")) {
            return new ZipEntry(path);
        }
        // 正常的 class 文件读取
        return new DirEntry(path);
    }

}


















